#include "Columna.h"

#include <glm\gtc\matrix_transform.hpp>


void Columna::init(const glm::vec3 &posFuenteLuzDireccional, std::string vertShaderFileName, std::string fragShaderFileName) {
	this->m_cilindro.init(posFuenteLuzDireccional, vertShaderFileName, fragShaderFileName);
}


void Columna::setMaterial(const glm::vec3 &coefDifusion, const glm::vec3 &coefAmbiente, const glm::vec3 &coefEspecular) {
	this->m_cilindro.setMaterial(coefDifusion, coefAmbiente, coefEspecular);
}


void Columna::renderizar(const glm::mat4 &matVista, const glm::mat4 &matProyeccion, const glm::mat4 &matModelo) const {
	// Escala el cilindro para tener 3 de alto y 1 de diametro
	glm::mat4 matModelColumna = glm::scale(matModelo, glm::vec3(0.5f, 0.5f, 1.5f));

	// Lo translada sobre el plano xy
	matModelColumna = glm::translate(matModelColumna, glm::vec3(0.0f, 0.0f, 1.0f));

	this->m_cilindro.renderizar(matVista, matProyeccion, matModelColumna);
}
